package CH7.基于匿名类的回调V1;

interface InterfaceA {//接口、抽象类或一般父类都可
    void go();
}
class AA implements InterfaceA{//实现类 or 子类
    @Override
    public void go() {
        System.out.println("V4： go()");
    }
}
class  FramePackaeg{
    public  void ptrGo(InterfaceA aaa){
        aaa.go();
    }
}


class Demo {//模拟调用者
    public static void main(String[] args) {
        AA aa = new AA();
       InterfaceA ia = aa;
 /*        ia.go();//实际调用的是子类or实现类的重写方法，多态*/

        FramePackaeg fp=new FramePackaeg();
        //fp.ptrGo(ia);
        //fp.ptrGo(new AA());
        //fp.ptrGo(new AA(){});
        //fp.ptrGo(new AA(){
        //    public void go() {
        //        System.out.println("V5： go()");
        //    }
        //});
        fp.ptrGo(new InterfaceA(){
            public void go() {
                System.out.println("V6： go()");
            }
        });
    }
}
